#pragma once

#include "Vec3.h"
#include "Mat4.h"
#include "Mat4.h"

class MatUtil
{
private:
	static float DEG_TO_RAD;

public:
	static Mat4 rotateX(float theta);

	static Mat4 rotateY(float theta);

	static Mat4 rotateZ(float theta);

	static Mat4 rotate(float tx, float ty, float tz);

	static Mat4 rotateArbitraryAxis(const Vec3& u, float theta);

	static Mat4 translate(float x, float y, float z);

	static Mat4 scale(float x, float y, float z);

	static Mat4 inverseTranlations(const Mat4& m);

	static Mat4 inverseRotations(const Mat4& m);
};